package org.gpf.game.tank.offline;

import java.awt.Color;
import java.awt.Graphics;

/**
 * 爆炸类，模拟击中坦克的时候爆炸由小变大再由大变小的过程
 * @author gaopengfei
 * @date 2015-5-7 下午6:37:18
 */
public class Explode {

	int x,y;										// 位置
	private boolean live = true;					// 生死
	int[] diamiter = {4,7,12,18,26,32,49,30,14,6};	// 不同直径的圆
	int step = 0;									// diamiter数组的下标
	
	private TankClient tc;							// 持有大管家的引用
	
	public Explode(int x,int y,TankClient tc) {
		this.x = x;
		this.y = y;
		this.tc = tc;
	}
	
	public void draw(Graphics g){
		
		if(!live){
			tc.explodes.remove(this);	// 当爆炸不存在的时候将其从集合中移除
			return;
		}
		if(step==diamiter.length){
			live = false;
			step = 0;
			return;
		}
		Color c = g.getColor();
		g.setColor(Color.ORANGE);
		g.fillOval(x, y, diamiter[step], diamiter[step]);
		g.setColor(c);
		step++;
	}
}
